Instruments were historically designed and built to perform a rather limited and well specified set of measurements for fairly well defined applications in localized environments for a specific type of user. However, the advent of large scale integrated circuit technology has provided instrument designers with the ability to cost effectively add more and more capabilities to an instrument.
Many instruments today are now designed to be controlled by a computer, and this computer may be located remotely from the instrument. Instruments have moved from the ability to make, for example, simple voltage and/or current measurements by flipping a switch to the ability to perform multiple tests of multiple types at a high rate of speed without human interaction. In another aspect, the functionality of instruments is becoming more and more dynamic. A user can now purchase options for an instrument that can be turned on and off as, for example, the user pays for licenses for various functionality and/or licenses expire. Standard control and interconnect technologies and protocols have been developed for this combined computer/instrument system.
Modern instruments can now provide a variety of measurement capabilities which are controlled by software programs written for and resident on the instrument using a set of software routines. These routines are often a part of a software suite of functions having a standard format. Such routines are referred to as Application Program(ming) Interface (API) functions. In computers, the operating system, for example, has APIs for a variety of tasks including disk and file control. API's are written and used in order to provide portable code and are generally available for use by application programmers. Application programmers specify the commands (calls) and the required parameters of the commands necessary to perform a needed task. They do not have to address the details of implementation, which may vary from system to system. In effect, the API's form a high-level programming language.
Software control of instruments is similarly effected by means of API's written for each instrument. Again, the instrument application developer can write portable, high-level software without having to deal with the more detailed, lower-level implementation details which are more involved and which are instrument specific. The set of API's developed for any given instrument is referred to as the native instrument API's. Programming environments with standard protocols, such as .NET which is an open software standard initially developed by Microsoft, are now used in the creation and running of modern instrument applications.
The use of standard programming and runtime protocol environments has resulted, to some extent, in the ability to reuse prior developed software with the resultant savings in development expense and a reduction in development time with hopefully more reliable software.